package morefun.demo

import org.apache.spark.{SparkConf, SparkContext}

object ParallelizeCollection {

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("ParallelizeCollection").setMaster("local")
    val sc = new SparkContext(conf)

    val numbers = Array(1,2,3,4,5,6,7,8,9,10);
    // 第二个参数是指定切分成多少个 partitions，spark 会为每个 partition 创建一个 task 执行
    // spark 官方建议，为 Spark 集群每个cpu创建2-4个 partition
    val numbersRDD = sc.parallelize(numbers); // 可以使用默认不提供第二个参数
//    val numbersRDD = sc.parallelize(numbers, 10); // 可以指定参数
    val sum = numbersRDD.reduce(_+_);

    println("sum = " + sum)
  }
}
